Hello, folks! As long i use CompuServe, as long i see always the same questions about "what is SCSI?", "how can i use SCSI?", "Why doesn't it work for me?" and so on... For it was a lot of typing defining this in every message, and, for i forgot something in any message, i tried to rewrite an older article i did for our internal training.... This tries to be the _start_ for a SCSI.TXT to introduce beginners to SCSI. In the future, this may be re-formatted to a real FAQ, but at the moment... I think it's usable as-is, but definitely not complete or even close to it ( but i'm working on it ... ) This text is based on my own knowledge about SCSI. For i'm not in any way omniscient, infallible or whatever , i would like to get all sorts of comments about what may be wrong, what's missing and so on... Please take the SCSI-3 parts not too serious at the moment - i think i didn't make real errors, but - unlike SCSI-1 and SCSI-2 - the SCSI-3 spec consists of various parts that are interlocked to each other and are still "subject to change". I'll keep an eye of it and update this over time. The SCSI-3 details will follow later, as i'll need some time to read through these docs and - especially - understand them. If you are interested in the official SCSI documents, NCR's SCSI BBS on ++1 - 719-574-0424 has them all. However, they are big and - in their naming scheme - somewhat hard to find. Gerhard Islinger CIS: ID 100023,3537 Internet: 100023.3537@compuserve.com Also, it seems there has to be a legal part: This file is provided "AS-IS", with no warranty as to its correctness. Use at your own risk. The author(s) is/are not liable to any damage that may occur from usage of these informations. History: Rel. 0.8 Initial release on CIS. Rel. 0.9 Entered drivers for DOS and OS/2. Moved the connectors to App. A. Rel. 0.91 68pin and 110pin connectors/ Disconnect / SCSI-ATAPI / Dal Allen's article / added SDMS description / BBS # This is release 0.91. Let's hope for 1.0 ... still neccessary: - SCSI troubleshooting - more BBS and support numbers, if possible - whatever you may find missing ... 1. What is SCSI ? 1.1. SCSI-1 1.2. SCSI-2 1.2.1. Fast SCSI 1.2.2. Wide SCSI 1.3. SCSI-3 1.3.1. Fibre Channel 1.3.2. Serial Channel 2. Inside the Basics 2.1. ID's and LUNs 2.2. Termination 2.2.1. "Classic" passive termination 2.2.2. Active termination 2.2.3. Forced Perfect Termination (FPT) 2.3. Connectors 2.4. Cables and cable lengths 2.5. Signal levels 2.6. Single-Ended and Differential SCSI 2.7. Synchronous and Asynchronous Transfers 2.8. Disconnect/Reconnect 2.9. SCSI or IDE/ATAPI ? 2.10. Speed considerations 3. SCSI and PC's 3.1. Software interfaces 3.1.1. ASPI 3.1.2. CAM 3.1.3. SDMS 3.1.4. LADDR 3.2. Host adapters 3.2.1. BIOS 3.2.2. Bus mastering 3.2.3. Cache host adapters 3.2.4. Sound cards with SCSI 3.2.5. Disk-only SCSI host adapters 3.2.6. ISA, EISA, VL and PCI 3.2.7. PCMCIA and Parallel-to-SCSI adapters 4. SCSI and the real life ... 4.1. Installing a SCSI host adapter 4.2. Installing SCSI devices 4.2.1. Setting proper termination 4.2.2. Finding out and setting the SCSI ID of the new device 4.3. What can be wrong? 4.3.1. Cabling with "Standard" SCSI 4.3.2. Cabling with Fast SCSI 4.3.3. Termination and Termination Power 4.4. SCSI drivers on PCs 4.4.1. SCSI drivers for DOS 4.4.2. CAM drivers for DOS 4.4.3. SCSI drivers for OS/2 Appendices: A. SCSI Connectors A.1. 25 pin DB-25 SCSI connector A.2. 50 pin SCSI connectors A.3. 68 pin SCSI connectors A.4. 110 pin SCSI connector A.5. other SCSI connectors B. Some places to get information about SCSI C. Termination Diagrams 1. What is SCSI ? SCSI is an all-purpose parallel bus system. It originated from Shugart's 1979' SASI (Shugart Associates System Interface) and Shugart and NCR presented it to the ANSI in 1981. Finally, it got official in 1986, when the ANSI-committee X3T9.2 defined the SCSI-1 spec as document X3.131-1986. Of course, "all-purpose parallel bus system" means all and nothing. What helped SCSI to spread was its very high speed (for this time) and - driver problems aside - its flexibility. However, it was the disk and tape interface of choice for Unix systems and that's where i first had contact with SCSI - i changed from an MFM system with 2 * 80 MB disks and a QIC-02 tape controller (8 bit) to a SCSI system with a 380 MB disk and a SCSI tape, both attached to one 16 Bit SCSI adapter - freed one interrupt and was a _lot_ faster. SCSI in all its flavours is now an acknowledged and very well standardized multipurpose interface. SCSI supports a wide variety of devices which include hard disks, removeable disks, magneto-optical devices, tape drives, printers, processors, WORMs, CD-ROMs, scanners, medium-changers (jukeboxes), and communication devices. With PCs, the most common devices are hard disks, removeable devices like MO, WORM, Syquest and Bernoulli disks, CDROMs, tape drives and image scanners. In the Macintosh world, where SCSI was included in all models since the Mac Plus and expansion slots were not available on some, there are even some SCSI-based video and network adapters. 1.1. SCSI-1 SCSI-1 defined an 8 bit I/O-Bus that allows the connection of up to 8 devices including the so-called "host adapter". Every device must have a unique ID in the range of 0 to 7. SCSI-1 was a high-speed bus system, compared to this time's peripheral devices. 1.2. SCSI-2 SCSI-1 was the first approved standard and lacked some points and some definitions. So SCSI-2 development and approval started while SCSI-1 still wasn't officially approved. In 1986, when SCSI-1 was officially approved, SCSI-2 already was in the works until now, when on January 31, 1994, the draft in revision 10L was approved by the ANSI Board of Standards Review. The official SCSI-2 designation (doc. nr.) will be X3.131-1994. As you might remember, most manufacturers used the term "SCSI-2" from about 1988 in marketing. This isn't real approved SCSI-2, of course, but mostly you can trust this, as the changes weren't big for "standard" devices. SCSI-2 merely entered a better formal definition, removed some oddities and obsolete things, and added some extensions: - The Type-1 connector (DB-50) was removed, high density SCSI-2 connector alternatives were added to the official options - Synchronous Transfers became a standard feature, with optional - Fast Synchronous Transfer Mode (Fast SCSI-2) - Sync. Negotiation can be invoked by Initiator _and_ Target. - 16Bit- and 32Bit-Wide SCSI became a defined option. - SCSI bus parity changed from "optional" to "mandatory" - Initiators now must provide terminator power - Message support became mandatory - Command Queueing became a defined option. For a device that supports command queueing anyway need memory to reorder the commands, this - with a little step further - introduced device caches, that can be manipulated through the Mode Sense Pages - the Common Command Sets (CCS) for several device classes became formally defined. The only real possible problem i found with SCSI-2 compatibility is, a lot of older host adapters - typically the SCSI initiator - can't handle the SCSI-2 Sync. Negotiation when it's started by the target. 1.2.1. Fast SCSI With SCSI-2, Fast SCSI was defined as an option. Fast SCSI is an additional synchronous data transfer mode with 10MB/sec data rate. Only data transfers are synchronous, the commands are transferred asynchronous as before. Fast SCSI is _very_ picky with the SCSI cabling, especially with round external cabling. Most external cables doesn't support reliable Fast SCSI, the few that do are _very_ expensive. 1.2.2. Wide SCSI Another SCSI-2 option is Wide SCSI. Two flavors are defined, 16 Bit and 32 Bit. Wide SCSI can be combined with Fast SCSI and so can give up to 40 MB/sec data rate. Every 8 Bit have their own parity bit and also with every 8 Bit you have the possibility to address another 8 devices. For every data bit line selects a device, with 16 Bit Wide SCSI, you can address 16 devices, 32 Bit Wide SCSI has 32 possible ID's. The X3T9.2 committee defined a 68-pin SCSI cable for 16Bit and a combination of a standard 8Bit 'A' and a 68 pin 'B' cable for 16 Bit and 32 Bit Wide SCSI. However, there is a 110 pin 'L'-cable at least in discussion that will support 8, 16 and 32 Bit connections and should be standardized with SCSI-3. 1.3. SCSI-3 SCSI-3 is somewhat a revolution in the SCSI world - it defines high speed _serial_ interfaces. At the moment, there seem to be three of these serial interfaces in the works: Fiber Channel, Fiber Channel Low cost and P1394. On the software side, there seem to be only some small additions for the command sets - a new command set for graphical devices, a slight extension to the cache option and so on ... But still, this may change ... The Fiber channel and FC/LC should provide up to 100 MBytes/sec data throughput, where P1394, also called "FireWire", is defined to give up to 200 MBytes/sec. P1394 seems to have one advantage over Fiber Channel - it's an "isochronous" transport layer, that means, it delivers - and should guarantee - a continuous data stream. This seems to be what the multimedia people pray for - no missing parts in images and sounds. There is also a new connector scheme called Single Connector Attachment (SCA). SCA uses an 80-pin connector to provide all neccessary signals for 8- and 16-bit SCSI devices, including power connections, LED-control and so on. It's major advantage is the possibility to use SCSI devices as a single plug-in module without the need for an additional connector between the bus and the device, as it's with today's cheap HD "drawers". Although SCA devices should be on the market, i didn't see an SCA device 'til now, so i think they'll take some time to show up in PCs. 2. Inside the Basics 2.1. ID's and LUNs Every SCSI device need to have a unique ID on the bus. For this reason, most devices have three ID jumpers to select an ID from 0 to 7. In most cases, ID 7 is reserved for the host adapter. Additionally, every ID can have up to seven sub-units identified by a LUN (Logical Unit Number). Thus, you can address multiple devices through one ID, like dual drives (Bernoulli did this on their external Dual Bernoulli Boxes). LUNs are mostly used in bridge controllers, that use the LUN- subaddressing scheme to emulate a big disk drive with multiple smaller disks. Up to eight disks could be combined to a big disk drive, where the single drives are addressed by LUNs. A special case of these bridge controllers are RAID controllers. By using LUNs, theoretically you could attach 49 devices to one bus cable (7 IDs * 7 LUNs, without ID 7 for the host adapter), if you use all LUNs for specific devices. But LUNs are only very seldom used in PC applications. 2.2. Termination The SCSI bus needs to be "terminated". This means, both ends of the bus get a pull-up resistor construction to eliminate signal reflections that would occur from the physical ends of the bus. There are various circuit schemes of termination, the two most popular are drawn below. The termination circuit needs some power, and, to deliver this, there is a line called TERMPWR or Termination Power on the bus. Mostly, the TP source is the host adapter, fro this reason you can see fuses on most host adapters, mostly about 1.5 Amp types. A more thorough diagram of various configurations is in App. C. 2.2.1. "Classic" passive termination The "old" passive termination ("Alternative 1" in the SCSI-2 spec) came with SCSI-1 and simply was made of a 220 Ohms pull-up and a 330 Ohms pull-down resistor per signal in a circuit like this: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÚÁ¿ Termination Power (TP) +5V ³ ³ ÀÂÙ220 Ohms ³ Signal ÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ÚÁ¿ ³ ³ ÀÂÙ330 Ohms ³ ³ Ground 0V ÄÁÄ This termination scheme works good, but it draws a lot of power from the TP provider. 2.2.2. Active termination Active termination ("Alternative 2" in the SCSI-2 spec) consists of a 110 Ohms resistor per signal pulled up to a 2.85 volts power supply. Most SCSI-2 and all Fast SCSI-2 devices support this termination type. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ TermPWR ³ ³ R3 ³ ÚÄÄ\/\/\/ÄÄÄ -DB(0) ³ ³ . ³ . . ³ Voltage Regulator . . ³ ÚÄÄÄÄÄÄÄÄÄ¿ ÃÄÄ\/\/\/ÄÄÄ . ÃÄÄÄ´ 2.85 V ÃÄÄÂÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄ´ . ³ ÀÄÄÄÄÄÂÄÄÄÙ ÚÁ¿R1³ ³ ÃÄÄ\/\/\/ÄÄÄ . ³ ³ ³ ³ ØC2 ØC3 ³ . ØC1 ³ ÀÂÙ ³ ³ ÃÄÄ\/\/\/ÄÄÄ . ³ ÀÄÄÄÄÄÄ´ ³ ³ ³ . ³ ÚÁ¿ ³ ³ ÀÄÄ\/\/\/ÄÄÄ -I/O ³ ³ ³R2³ ³ R20 ³ ÀÂÙ ³ ³ ÄÁÄ ÄÁÄ ÄÁÄ ÄÁÄ 2.2.3. Forced Perfect Termination (FPT) There is another Termination scheme out there, called FPT. According to what i heard about it, it uses diode clamps to two regulated voltages to eliminate under- and overshoot. Clamp values should be at about 3.0 and 0.5 volts. The clamping to two regulated voltages in the signal range instead of clamping to TP and ground gives the diodes an earlier switching point and thus enhances signal quality, as the over- and undershoot elimination process begins earlier in the signal. I have no real FPT circuit, as i never saw an FPT terminator, but the rough schematic below should be basically right. TP ÄÄÄ¿Voltage Regulator ÚÄÁÄÄÄ¿ ³ VR1 ³ ÀÄÂÄÄÄÙ about ³ ÚÄÄÄÄÄ¿ + 3 V 3.6 V ?ÃÄÄÄ´ VR2 ÃÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄ ³ ÀÄÄÄÄÄÙ -+- ³ /_\ D1 ³ ³ ³ pull-up ³ ÃÄÄÄÄÄÄÄÄ/\/\/\ÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Signal ³ resistor ³ ³ -+- ³ /_\ D2 ³ ÚÄÄÄÄÄ¿ ³ ÀÄÄÄ´ VR3 ÃÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄ ÀÄÄÄÄÄÙ + 1.2 V 2.3. SCSI Connectors There are many different connectors for SCSI. Some of them were defined with SCSI-1 and now obsolete, like the DB-50 connector. The most common ones today are the 50-pin Centronics-type SCSI-1 connector, the 50-pin High Density SCSI-2 connector and the DB-25 connector Apple introduced on their Macintosh computers. Most new host adapters and external devices use the SCSI-2 HD connector and in this case you normally can trust that it's a "real" SCSI-2 device. The pinouts of the common connectors are shown in Appendix A. 2.4. Cables and cable lengths Cable lenghts were defined up to 6 meters maximum in SCSI-1 for a single-ended SCSI bus and up to 5 MHz data rate. So, the variants - "standard" asynchronous transfer (mostly up to 3.3 MBytes/sec) and - "standard" synchronous transfer (5 MBytes/sec) can have up to these 6 meters _total_ cable length for the bus. Keep this in mind, if you use long cables, and don't forget the cable lengths for the internal device cables. With Fast SCSI-2 the highest possible data rate doubled to 10MHz in synchronous mode and - you might guess it - the cable length was halved. So, if you use Fast SCSI-2 devices, your _maximal_ SCSI bus length is 3 meters. SCSI-2 allows up to 10 cm cable "stub" length from the device to the main bus cable. Sometimes this length is exceeded, causing higher capacitive loading. Sometimes this even works, for the maximal allowed stub length for any device-to-device connection is 20 cm, but don't _expect_ that to work reliably over 10 cm, especially with 10 MHz Fast SCSI-2 signalling. Differential cables can use the full length up to 25 meters (82 feet) and keep the max. data rate of 10 MHz. This is especially important with external devices, as most external single-ended cables can cope with 5 MHz only. All cables should have matching impedances - not easy for flat and round cables. There are a lot of rules and rules-of-thumb for SCSI cables that make a good external SCSI cable an _expensive_ cable. The SCSI documents have lots of technical details about cabling. For example, a three-layer wire-pair placement scheme with defined impedance rules is recommended for external cables that makes the cable expensive to produce. Therefore, there are a lot of external cables with too low impedance in the 50 to 70 Ohms range instead of the recommended 90 Ohms. In a few years of practice with SCSI, i saw a lot of errors and faulty behaviour suddenly go away with a change to high-quality cables. 2.5. Signal levels Single-Ended SCSI signal levels vary from 0V to +5.25V. All signals are active low (true is a voltage level between 0 and +0.8 V and false is defined as a voltage between +2 and +5.25 V). 2.6. Single-Ended and Differential SCSI There are two different electrical SCSI interfaces, Single-Ended and Differential SCSI. Single-Ended, "Standard" SCSI has (sic!) single ended TTL trans- ceivers that allow up to 5 MHz data transfer rates with up to 6 meters cable length or up to 10 MHz data transfer (Fast SCSI) with up to 3 meters cable length. Differential SCSI has RS-485-style transceiversthat allow up to 10 MHz data transfer rate, but with cable lengths up to 25 meters and with much better S/N conditions. Important is, Single-Ended and Differential devices are _not_ electrically compatible with each other. If you try to mix them, you'll likely end up in destroying the Single-Ended devices on the bus and - less probably - even the differential device(s). 2.7. Synchronous and Asynchronous Transfers SCSI can use two handshaking modes, Asynchronous and Synchronous. The main difference is, Asynchronous is basically a "classic" REQ/ACK handshaking system for each data packet, where with Synchronous, multiple REQ's can be issued before receiving ACK's, thus giving a big performance plus. 2.8. SCSI Disconnect / Reconnect Typically, not all SCSI commands can be processed immediately. For example, rewinding a tape or scanning a page with an image scanner can take a long time, as can seeking to a sector on a CD-ROM or hard disk. Such operations can tie up the CPU unnecessarily while waiting for the device to complete the task. For these cases, SCSI has a defined way for a device to disconnect from the SCSI bus, thus freeing the SCSI bus for other SCSI transactions or at least freeing the CPU from being tied to the SCSI bus waiting for the operation to complete. When the disconnected device completes this operation, it can reconnect to the bus, causing a hardware interrupt. When this interrupt occurs, bus control is returned back to that SCSI operation, which then completes. This "SCSI disconnect/reconnect" mechanism provides overlapped I/O functionality, thus allowing multiple outstanding SCSI requests with different devices to be processed at the same time. Especially with devices with higher typical command times, this is a very valuable SCSI feature. 2.9. SCSI or IDE/ATAPI ? Much is talked about SCSI speed higher or lower than ESDI or ATA. This discussion generally only covers disk drives, without really comparing the whole system in means of performance or flexibility. At work, over years i've tested a lot of disk drives in ATAPI and SCSI versions against each other, and generally, you won't find much difference in speed between the various interfaces, as they all are fast enough to handle disk drives. Also, i've seen a lot of comparisons where the contenders were choosen accordingly to the opinion they should prove. Personally, i find it of more interest that SCSI as a universal 8-bit interface without problems reach the speed of a dedicated 16-bit disk interface like ATAPI. For both interfaces deliver similar speed, i think the "SCSI is faster/better" - "NO! ATAPI is faster/better" discussion doesn't hit the point in my opinion. If just a disk interface is needed for a desktop PC, IDE/ATAPI is significantly cheaper, mainly for it's mass production and the cheaper adapters. If it comes to multiple devices as CDROM, tapes or scanners, this changes. SCSI is _very_ flexible here, and today, drivers are not the problem they were in the past. Also, the ongoing SCSI integration in motherboards will drop SCSI cost. So, the battle is still open . 2.10. Speed considerations A small maximal speed table for the SCSI transfer modes could read like this: Transfer type Bits Speed/Data rate Asynchronous 8 3.3 MBytes/sec Synchronous 8 5.0 MBytes/sec Fast Synchronous 8 10.0 MBytes/sec Wide Synchronous 16 10.0 MBytes/sec Fast Wide Synchronous 16 20.0 MBytes/sec Wide Synchronous 32 20.0 MBytes/sec Fast Wide Synchronous 32 40.0 MBytes/sec When reading things like "data rate buffer-to-bus 10 MB/sec" with SCSI devices, keep in mind that this doesn't mean the real sustained data rate your hard disk or CDROM can deliver - it's just the speed the device can post its cache contents to the SCSI bus. With hard disks, you will mostly find statements like "internal data rate 30-47 MBit/s", what would mean in this example, the disk drive could transfer 5,875 MBytes/sec raw data internal. But this value cannot be reached - you'll loose some speed due to the disk architecture: If you have a disk drive with 60 sectors per track and 5400 rpm, the value could be not better than: ( sectors * bytes/sector * rpm ) / seconds per minute, (60 * 512 * 5400) / 60 = 2,765 MBytes/sec Add to this some command overhead, head movement times and so on, then you get an impression, how realistic these values are ... A second example here are CDROM drives - my Toshiba 3401 has 330 kB/sec sustained data rate, but its burst data rate can be up to 4.2 MB/sec in synchronous mode. 3. SCSI and PC's PC-specific SCSI standards include mostly software depending on the operating system. However, if you choose SCSI for your PC, think about your needs before buying a SCSI host adapter. 3.1. Software interfaces Besides various vendor-specific implementations like, for example, Bernoullis OAD (Open Architecture Drivers) there are a few vendor-independent standards: - ASPI for DOS, OS/2 and Netware - CAM/SCAM for DOS (and OS/2 ?) - LADDR for OS/2 1.x 3.1.1. ASPI ASPI stands for Advanced SCSI Programming Interface. Mainly, it originated at Adaptec and was soon adopted by major companies. ASPI provides a communication layer to the SCSI adapter and the devices without the need to know about the host adapter - all communication is made to the ASPI interface. So, basically the host adapter manufacturer writes an ASPI driver for his host adapter and he's in business without the need of writing a new CDROM driver, a disk driver and so on. Most actual tape backup software needs ASPI as a communication layer or - at least - supports it. ASPI exists for DOS, OS/2 and NetWare. 3.1.2. CAM CAM is the "official" ANSI software interface for SCSI devices. I'm not absolutely sure if it's a draft or a standard yet. However, it seems to be used only by NCR and Future Domain with their SCSI host adapters, and at least FD supplies an additional ASPI-over-CAM driver with their boards. 3.1.3. SDMS NCR now calls its CAM drivers NCR SCSI Device Management System (SDMS). SDMS is based on a standard SCSI BIOS, that can be ROM- (bootable) or RAM-based (non-bootable) to address the host adapter hardware. The SCSI drivers link to this BIOS. Generally, a SDMS driver is completely hardware-independant. One special case with SDMS is that NCR also offers so-called "concatenated" SCSI device drivers, where a SCSI-chip specific SCSI BIOS is appended to the driver code. See also - CAM drivers for DOS 3.1.4. LADDR LADDR was Microsoft and IBM's approach to embed a disk driver and SCSI interface into OS/2 1.2 and 1.3. For OS/2 1.x's small market share and its limitation to a single OS, it didn't get bigger acceptance. 3.2. Host adapters - variants and terminology There are some flavors of SCSI host adapters; With and Without BIOS, with or without cache, ISA 8 Bit or 16 Bit, EISA, VL and PCI bus interfaces, SCSI-IDE combo adapters, standalone or integrated with sound cards, disk-only adapters, and, and .... Let's try to bring some light in here ... 3.2.1. BIOS: If you want to boot from a SCSI device, you need a SCSI BIOS, that handles the boot process, for a standard PC BIOS doesn't know anything about SCSI. This BIOS handles the interface between SCSI's Logical Block addressing scheme and the PC's Cylinder/Head/Sector scheme. 3.2.2. Bus mastering: Some PC host adapters use "DMA Bus mastering" to achieve higher data rates from the SCSI host adapter's buffer to system memory. Bus mastering is a method to move data over the system bus by bypassing the CPU and giving control over the bus to the peripheral controller, so that the bus can be used up to its maximal data rate without the CPU overhead of a 'normal' I/O transfer. 3.2.3. Cache host adapters: a hardware cache is a good method to speed up the disk interface. However, you should define if your environment can benefit from a hardware cache _before_ buying it. The pro-cache and the anti-cache societies fight "holy" wars about cacheing, so please allow me to clarify that the following is my _personal_ opinion on this theme: A cache controller is a good investment for multitasking environ- ments like Unix and especially Network servers. With DOS, it's generally better to spend the money for main RAM than for cache RAM and use a software cache. My personal experiences are: DPT 2012 and AMI EISA SCSI adapters in Novell and NFS Servers brought _big_ performance gains, especially with heavy-loaded servers. In DOS systems, a performance gain was visible, but it didn't equalize the price tag, especially with the expensive EISA cache controllers. However, this may differ with different cache controllers, as the possible performance gain is strongly dependent on the cache algorithm. 3.2.4. Sound cards with SCSI: There are basically two types of them: one has a full-fledged SCSI adapter integrated on the PCB, without any difference to a standard SCSI host adapter without BIOS. One example for this type is the SoundBlaster 16/SCSI, with an Adaptec SCSI chip on the board. The other variant i know about is the ProAudio Spectrum with a SCSI interface, that's "embedded" into the sound card ports. The PAS type is limited in speed, but not in SCSI functionality. As long as you get standard drivers for them, they all should give you full SCSI capabilities, but you can't boot from them. Lately i heard (hello, Paul!) of a new Adaptec Sound/SCSI board, the AHA 1570. I didn't see one personally, but it seems it combines a sound card and a full-featured host adapter with SCSI BIOS. If this is true, it might be the best SCSI/Sound combination at the moment, seen from the PC/SCSI side of things, and - by having success - should get competitors soon. Keep in mind that if you want to (or think about it for the future), boot from a SCSI disk, you need a full-fledged SCSI adapter with BIOS. 3.2.5. Disk-only SCSI host adapters: Mostly the Seagate ST-01 and ST-02. These adapters had their time when SCSI was a new disk interface. As they could be used only for disks and didn't have standard drivers for ASPI or CAM, they soon became obsolete. 3.2.6. ISA, EISA, VL and PCI: clearly the PC bus affect system performance. As for example the Adaptec 1542 supports DMA bus mastering speeds up to 10 MByte/sec, it would be fast enough for Fast SCSI-2. However, most ISA designs support only 5MB/sec DMA speed, so the ISA bus is a bottleneck with fast SCSI devices. EISA busmasters can transfer up to 33MBytes/sec over the bus, so in this case you really can benefit from faster devices, as the bottleneck is the device or the SCSI bus here. The same is true for VL and PCI SCSI host adapters. PCI boards have a speciality: Normally the SCSI BIOS is part of the SCSI adapter, but there are PCI boards with SDMS (NCR SCSI Device Management System) support in the BIOS, but without SCSI chip. So, for these boards, you can get cheap PCI SCSI adapters without BIOS, only with the NCR 53C810 chip on it, but never- theless bootable from a SCSI disk. So, with a PCI board, the best choice is one with the SCSI chip on it. 3.2.7. PCMCIA and Parallel-to-SCSI adapters: I have very limited experience with both of these; Personally i use a Trantor T348, at the office there are some different parallel-to-SCSI devices. All of them work and all share the same experiences. My Trantor T348 seems to be a stable and - if the parallel port allows it - fast SCSI interface. A friend of mine uses this T348 for backing up his notebook to a DAT tape and this works without flaws. However, the T348 and its pre- and successors T338 and T358 (an EPP variant of the T348) need a SCSI device that provides termination power, as they draw their operating current from the SCSI bus. This may give you problems, as normally i disable termination power on my external devices, for only one device on the bus (normally the host adapter) should provide TP. Keeping this in mind and acting accordingly, Parallel-to-SCSI adapters seem to be a possible solution for attaching SCSI devices to a system without a SCSI adapter, but they are limited in speed, especially with parallel ports that work only uni- directional. PCMCIA - i never used a PCMCIA SCSI adapter, so i can't comment on these. However, with the full PCMCIA driver set on my Toshiba needing about 130 kB of memory, plus the SCSI drivers, i can't take PCMCIA too serious with DOS, especially when working with SCSI or network drivers. OS/2 should solve this problem, though, as memory isn't a concern there. 4. SCSI and the real life ... In real life, theory is just a list of things that shouldn't happen . So, let's collect some experiences and comment about them ... 4.1. Installing a SCSI host adapter Basically, a SCSI host adapter is a standard PC board, regardless of the bus system used. As an example, let's follow my standard installation of an Adaptec 1542CF: First, look at the default values of the board and verify that it doesn't collide with other devices in your PC. Of course, you may have some other device in your PC that will bring you problems later, but first we just want to see if there is some obvious reason why it wouldn't work. So, control the I/O-address range, the IRQ(s), DMA channel, and the BIOS address for conflicts. Also, if you use a memory manager, exclude the choosen BIOS address space from its memory pool. If you have choosen all resources, enter them in your list of ressources. If you don't have one for your PC, it's a good idea to start one now. If all is ok, install the host adapter in the PC and turn it on again. If you didn't deinstall the BIOS, you will see a BIOS boot message like: Adaptec AHA-1540CF/1542CF BIOS 2.01s (c) 1993 Adaptec, Inc. All Rights reserved  Press for  SCSISelect(TM)  Utility!  Target #0 - DEC DSP3085S-B SD16 - Drive C: (80h) Target #1 - QUANTUM LP425S 606_ - Drive D: (81h) The boot-up message will list all devices that are on the SCSI bus and turned on. Also, it will show you if any of them are disks that are supported by the BIOS. Now, it's the best time to start any test programs that are in the BIOS. With the 1542CF, there is a DMA transfer test program you can use to test the maximal DMA speed your motherboard can safely use. So, press if the BIOS tells you to do so, select the host adapter's base address (it will be preset) and press the key. Select "Host Adapter Diagnostics" and press Enter. If the test runs for some time without problems (i normally use 3 passes), you see that the DMA speed is on the safe side. Now, turn off the PC and install the SCSI device(s). If you have more than one internal device, - set up a unique SCSI ID ( _not_ 7 ) on each of the devices and - select one of these devices to be at the end of the cable. Make sure that the choosen device has its termination enabled and disable termination on all other devices. Termination is either enabled through one or more jumpers, or simply by installing or removing some resistor packs on the device's PCB. Now, attach the SCSI cable to the host adapter and to the last device. Don't forget the device's power connector. Turn the PC on and watch if the SCSI device is being recognized by the host adapter. If yes, ok, turn off the PC and install the next device. Watch for the recognition again and install ....... If all devices are recognized, install the EZSCSI driver package. From this point on, you should be up and running. If you did deinstall the BIOS, or if it's a simple host adapter without BIOS, you will not see any reaction until you install the drivers. Of course, in real life, you will install all devices at once and in most cases all will work ok. The above is just the correct way i tell the new technicians . 4.2. Installing SCSI devices. 4.2.1. Setting proper termination Remember - the basic rule is: Termination on both ends of the SCSI chain. So, if you want to install the new device as the last device on one of the sides of the _complete_ cable, you need to enable termination on it. If it replaces another device that was at the end of the cable before and now is installed on another connector on the bus, you also have to disable the termination on this device. If you install an external SCSI device, but you had only internal devices so far, you also have to disable your host adapter's termination. This might be done by software, as with the newer Adaptecs, or by removing the (mostly three) terminator packs near the host adapter's SCSI connector, or by setting a jumper on the host adapter. Clearly, the same occurs, if you get your first internal device and had external devices before. 4.2.2. Finding out and setting the SCSI ID of the new device First you have to find out a free SCSI ID. The best method for this is simple - look at your host adapters bootup message and look for free IDs. Adaptec AHA-1540CF/1542CF BIOS 2.01s (c) 1993 Adaptec, Inc. All Rights reserved  Press for  SCSISelect(TM)  Utility!  Target #0 - DEC DSP3085S-B SD16 - Drive C: (80h) Target #1 - QUANTUM LP425S 606_ - Drive D: (81h) Target #3 - TOSHIBA CD-ROM XM-3301T Target #4 - SDI LASERSTOR E5 In this example, IDs 2, 5 and 6 are free for new devices. You can't use ID 7, as this is the host adapter. On internal devices, the ID is normally set by three jumpers in a 4-2-1 configuration. The sum of the jumper values counts for the ID. So, if you want a hard disk at ID 0, remove all three ID jumpers, if they are set. For ID 1, jou must set the jumper with value 1, mostly called ID0, where the "2" jumper is called ID1 and the "4" jumper is called ID2. If you play with Wide SCSI, you will have 4 (8-4-2-1) or even 5 (16-8-4-2-1) jumpers for ID selection. 4.3. What can be wrong? Basically - all . However, if i should make a list about problems i found or had at various offices and systems, there are some all-time highs and standard cases: - unstable termination, passive termination with Fast-SCSI, very rare: active termination with old SCSI devices. - wrong termination (too much devices terminated or SCSI bus ends not terminated correctly) - self-made short flat ribbon cables with bad contacts - using Fast-SCSI with cheap external round cables - too long cables, especially with adding Fast SCSI devices to an existing, stable SCSI system - setting the new device to a used ID - using a SCSI adapter that doesn't provide term. power (or disabled) and having no device set to provide it. 4.3.1. Cabling with "Standard" SCSI SCSI-1 and "Standard" SCSI-2 normally isn't very picky with its cabling. However, there are a few traps you could stumble in... The mixing of flat and round cables gives impedance changes that could lead into problems. Normally, you will use flat cable or twisted pair flat cable inside and round cables for external cabling. This normally works. Some times, when we tested different configurations, adding another "quick and dirty" flat cable to the external chain, it didn't work ... changing the flat cable to be the first cable after the controller sometimes did the trick. However, SCSI cabling is a sensitive thing, so, if i encounter strange problems, i look for correct termination first and for the cables directly after this. I've got some configurations outside that worked only after we changed the _complete_ cabling to flat cable. If you buy external cables, you will see that 30 cm is the _minimal_ length you can buy. 4.3.2. Cabling with Fast SCSI Other that SCSI-1, Fast SCSI is _very_ picky with its cables. If you buy a system from a "better" vendor, you will often see twisted-pair signal cables also for the internal cabling. This makes much sense, as the signal/noise ratio is better with this. With Fast SCSI, the allowed SCSI bus length drops to 3 meters including the internal cables. Keep this in mind if you install Fast-SCSI devices, or, if you have the choice, select a Twin- channel SCSI host adapter like, for example, Adaptec's 2742T instead of the standard 2742. 4.3.3. Termination and Termination Power The termination basic rule is simple - both ends of the SCSI chain. However, i had some cases where i got a system up and running only if i apply Termination on both ends _and_ on the host adapter. I have such a setup in my home system - HD, tape and CDROM internal, the internal end terminated with an active terminator, the 1542CF terminated (active), MO and scanner external and terminated with an active terminator, high-end cables, 2 meters all in all, only the 1542CF supplies termination power - all perfect. But when i turn off the host adapter's termination, _nothing_ works! So, don't be scared if a setup works that shouldn't - i verify it again and if it works, try to live with it. 4.4. SCSI drivers on PCs If you attach only hard disks to a SCSI adapter, you mostly won't need to install drivers, as hard disks are managed by the BIOS, except in some special cases. However, to access SCSI devices other than hard disks, you need some drivers. What drivers you need, depends on your host adapter, your operating system, your driver package and your devices. However, with any software interface there are some generic rules: - You need a hardware-specific part, that talks to your host adapter's SCSI chip. - Based on this hardware-specific part, there are some device- specific parts, that sit on the hardware-driver to talk to their supported devices. - On this device-dependant drivers, there _could_ be some application-specific parts. 4.4.1. ASPI drivers for DOS With ASPI, in first place you need an ASPI manager for your host adapter. This driver is the hardware dependant part of your driver package. For example, with an Adaptec 154x adapter in your PC, you will need to install ASPI4DOS.SYS. With a DPT SCSI host adapter, it would be DPTDDL.SYS, with a QLOGIC host adapter it would be QLASPI.SYS and so on ... After this driver is installed, the ASPI interface can be used by all sort of device drivers. For example, to address a CDROM drive, you could use Adaptec's ASPICD.SYS or Trantor's TSLCD.SYS (only the ASPI-based version from SCSIWorks!). You could use ASPIDISK.SYS to address removeable devices (Bernoullis, MO's ...) or hard disks, if your SCSI BIOS doesn't support them or isn't installed. Let's look at my DOS config.sys file to see some of these drivers: Don't mind the parameters that i don't explain at the moment. They're specific to my setup or hardware. Also, the path C:\DOS\SCSI is the path i installed the drivers on my system. The values in brackets on the right side of the DEVICE=.. lines are the memory consumption of these drivers on my main system. DEVICE=C:\DOS\SCSI\ASPI4DOS.SYS /D [ 8 kB] This is the ASPI manager for my Adaptec 1542CF. It does basically nothing but providing the ASPI interface. The /D-parameter gives some additional information at startup. DEVICE=C:\DOS\SCSI\ASPIDISK.SYS /D /R1 [ 5 kB] This driver supports my Bernoulli 90Pro removeable disk and the Maxoptix Tahiti Magneto-Optical drive. DEVICE=C:\DOS\SCSI\aspicd.SYS /D:ASPICD0 [12 kB] ASPICD.SYS is the device driver for a SCSI CDROM drive. The /D:ASPICD0 parameter installs the CDROM driver with the device name "ASPICD0". This _exact_ name is needed later for MSCDEX.EXE in Autoexec.bat. This same parameter could be used with other CDROM drivers, for example Toshiba's MDSCD_AS.SYS or Trantor's TSLCDR.SYS. DEVICE=C:\DOS\SCSI\EPSN.SYS 3 /i79 /S6 [ 3 kB] EPSN.SYS is the driver to address my EPSON scanner. A HP Scanjet II series scanner could be similar supported with a line like DEVICE=C:\DOS\SCSI\SJIIX.SYS. The CDROM driver needs an additional part in DOS's Autoexec.bat file, MSCDEX.EXE, to enable access to the CDROM's filesystem to DOS. The corresponding line in Autoexec.bat is: C:\DOS\MSCDEX.EXE /D:ASPICD0 /L:T /M:0 [23 kB] This line installs the CDROM Extension and needs _exact_ the same drivername after the /D: parameter that you used with the CDROM driver in Config.sys. /L:T tells MSCDEX to install the CDROM on drive letter T:, /M:0 means no buffers are set up, for i use DOS 6.2's SMARTDRV cache also on my CDROM. 4.4.2. CAM drivers for DOS The driver scheme for CAM is very similar to ASPI: a CAM shell driver as first driver, then various possible drivers: a CDROM driver, a driver for removeable disks and hard disks that are not supported by the BIOS and other specific drivers. Although standardized, CAM seems to exist in various flavours. With NCR, you normally get a CAM driver, a DISKIDD.SYS driver for removeable media and one generic ore some device-specific CDROM drivers. With a 53C9x chip-based adapter for example, you probably would have CAMC9X.SYS, CDROM.SYS and DISKIDD.SYS. With the 53C7xx and 53C8xx chips, the drivers changed slightly. With them, (at least i think so!) NCR introduced SDMS, their SCSI Device Management System. The SDMS kernel is mostly in the host adapter's or PC's BIOS, the CAM drivers are only needed if you want to use CAM or ASPI for attaching other devices. Now there are DOSCAM.SYS and MINICAM.SYS, ASPICAM.SYS, CDROM.SYS and SCSIDISK.SYS. According to NCR's driver text files, the main difference between DOSCAM.SYS and MINICAM.SYS is that DOSCAM supports synchronous transfers, Tagged command queuing, SCSI Disconnect/Reconnect and multithreading, where MINICAM.SYS doesn't support these "advanced" SCSI functions. A typical set of Config.sys entries for NCR-based host adapters could look like the following: DEVICE=C:\DOSCAM.SYS ....... the CAM 3.0 base driver DEVICE=C:\ASPICAM.SYS NCR's ASPI shell over CAM. After loading this driver, you can use all CAM or ASPI-based applications. DEVICE=C:\SCSIDISK.SYS ....... NCR's disk driver for removeable drives or drives with sector sizes other than 512 bytes. Also needed if you want to address more than seven SCSI drives with DOS 5+. DEVICE=C:\CDROM.SYS ....... The generic CDROM driver. Its syntax is exactly as described above with ASPICD.SYS. 4.4.3. SCSI drivers for OS/2 With OS/2 2.0, things went easier. The only host adapter specific part is the .ADD driver. SCSI, ASPI and CDROM support are standard with OS/2 2.x. The following excerpt is from my OS/2 config.sys: BASEDEV=OS2DASD.DMD This is OS/2's hard disk driver DEVICE=C:\OS2\OS2CDROM.DMD /Q IFS=C:\OS2\CDFS.IFS /Q These two entries install CDROM support and the CDROM file system. BASEDEV=xxxxxx.FLT If neccessary, you can install the appropriate .FLT file here for your CD-ROM drive, i.e. Hitachi.FLT. BASEDEV=OS2SCSI.DMD This is the generic SCSI support driver. BASEDEV=AHA154X.ADD /v This is the host adapter driver, in this case the .ADD module for my Adaptec 1542CF. The /v parameter gives some informatio about the attached devices at startup. BASEDEV=OS2ASPI.DMD /all This is the OS/2 ASPI driver. The parameter /all is specific to Adaptec's VASPI driver set i use and doesn't apply on the standard OS2ASPI.DMD. DEVICE=C:\OS2\MDOS\VASPI.SYS This is the virtual ASPI driver for the DOS-VDM's. This is also part of Adaptec's Virtual ASPI implementation. DEVICE=C:\OS2\OPTICAL.SYS This is IBM's driver for Magneto-Optical drives. Officially it is designed for 128 MB 3«" drives, but it also works with other MO's like my Maxoptix Tahiti. In the meantime there are some Shareware and PD extensions to OS/2 SCSI. One of these is Andreas Kaiser's ASPITAPE/SCSITAPE driver package with GNU TAR. The two entries here support tape backup to SCSI tapes under OS/2. set TAPE=+++TAPE$2 basedev=scsitape.dmd TAPE$2 2 S1 If you get a new SCSI .ADD driver, you need to install it in OS/2's CONFIG.SYS file. There are two possible ways to install the driver. Either you install the driver via OS/2's "Selective Install" command - you'll need a matching .DDP file for the driver -, or you include it into Config.sys manually. See your OS/2 documentation or the driver's readme file for better information. Appendix A. SCSI Connectors A.1. 25 pin DB-25 SCSI connector The DB-25 connector is the one looking like a PC's printer port. I think Apple introduced this DB-25 connector for SCSI, but i'm not sure about it. The Macintosh Plus didn't supply Termination power, so pin 25 isn't connected with this model. Future Domain had a different DB-25 connector on their first adapters and adopted the Apple pinout scheme on their TMCxxxM SCSI host adapters later. Also, the M-models have a label "Apple pinout" somewhere on the slot plate. The adapters in question are the TMC-820, -830, -840, -845, -850, -860, -870, -875, -885 and MCS-350. If you need a cable for one of these, contact Future Domain for the cable with part number HCA-108. Extreme care should be taken if you get a Future Domain Cable or an adapter where you're not _absolutely_ sure if it's an old FD or an Apple-style device. Wrong connections will blow your TP fuse on the host adapter and - probably - destroy the host adapter or other devices on the SCSI bus ! The pin counting is like: 1 2 3 4 ... 13 14 15 16 ... 25 Pin Signal Signal Apple old FD 1 -REQ GND 2 -MSG -DB(1) 3 -I/O -DB(3) 4 -RST -DB(5) 5 -ACK -DB(7) 6 -BSY GND 7 Ground -SEL 8 -DB0 GND 9 Ground SPARE 10 -DB3 -RST 11 -DB5 -C/D 12 -DB6 -I/O 13 -DB7 GND 14 Res./Ground -DB(0) 15 -C/D -DB(2) 16 Res./Ground -DB(4) 17 -ATN -DB(6) 18 Ground -DB(P) 19 -SEL GND 20 -DBP -ATN 21 -DB1 -MSG 22 -DB2 -ACK 23 -DB4 -BSY 24 Ground -REQ 25 * Term. Power GND *: not connected in the Mac Plus connector. A.2. 50 pin SCSI connectors Type 1 is the flat cable connector on the devices' PCB. Type 2 is the 50-pin Centronics-style connector, still the "Standard" PC SCSI connector The SCSI-2 high density connector's pinout is identical to the Type 2 Centronics-style connector Type 1 1 3 5 7 ..... 49 counts ÉÍÄÄÄÄÄÄÍÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 2 4 6 8 ..... 50 Type 2 1 2 3 ..... 25 counts +/--------------\+ \______________/ 26 27 28 .... 50 Pin Type ³ Pin Type Single-Ended ³ Differential 1 2 ³ 1 2 ³ 1 GND GND ³ 1 GND GND 2 -DB(0) GND ³ 2 GND +DB(0) 3 GND GND ³ 3 +DB(0) +DB(1) 4 -DB(1) GND ³ 4 -DB(0) +DB(2) 5 GND GND ³ 5 +DB(1) +DB(3) 6 -DB(2) GND ³ 6 -DB(1) +DB(4) 7 GND GND ³ 7 +DB(2) +DB(5) 8 -DB(3) GND ³ 8 -DB(2) +DB(6) 9 GND GND ³ 9 +DB(3) +DB(7) 10 -DB(4) GND ³ 10 -DB(3) +DB(P) 11 GND GND ³ 11 +DB(4) DIFFSENS 12 -DB(5) Res. ³ 12 -DB(4) Res. 13 GND n.c. ³ 13 +DB(5) TRMPWR 14 -DB(6) Res. ³ 14 -DB(5) Res. 15 GND GND ³ 15 +DB(6) +ATN 16 -DB(7) GND ³ 16 -DB(6) GND 17 GND GND ³ 17 +DB(7) +BSY 18 -DB(P) GND ³ 18 -DB(7) +ACK 19 GND GND ³ 19 +DB(P) +RST 20 GND GND ³ 20 -DB(P) +MSG 21 GND GND ³ 21 DIFFSENS +SEL 22 GND GND ³ 22 GND +C/D 23 Res. GND ³ 23 Res. +REQ 24 Res. GND ³ 24 Res. +I/O 25 n.c. GND ³ 25 TRMPWR GND 26 TRMPWR -DB0 ³ 26 TRMPWR GND 27 Res. -DB1 ³ 27 Res. -DB(0) 28 Res. -DB2 ³ 28 Res. -DB(1) 29 GND -DB3 ³ 29 +ATN -DB(2) 30 GND -DB4 ³ 30 -ATN -DB(3) Pin Type ³ Pin Type Single-Ended ³ Differential 1 2 ³ 1 2 ³ 31 GND -DB5 ³ 31 GND -DB(4) 32 -ATN -DB6 ³ 32 GND -DB(5) 33 GND -DB7 ³ 33 +BSY -DB(6) 34 GND -DBP ³ 34 -BSY -DB(7) 35 GND GND ³ 35 +ACK -DB(P) 36 -BSY GND ³ 36 -ACK GND 37 GND Res. ³ 37 +RST Res. 38 -ACK TRMPWR ³ 38 -RST TRMPWR 39 GND Res. ³ 39 +MSG Res. 40 -RST GND ³ 40 -MSG -ATN 41 GND -ATN ³ 41 +SEL GND 42 -MSG GND ³ 42 -SEL -BSY 43 GND -BSY ³ 43 +C/D -ACK 44 -SEL -ACK ³ 44 -C/D -RST 45 GND -RST ³ 45 +REQ -MSG 46 -C/D -MSG ³ 46 -REQ -SEL 47 GND -SEL ³ 47 +I/O -C/D 48 -REQ -C/D ³ 48 -I/O -REQ 49 GND -REQ ³ 49 GND -I/O 50 -I/O -I/O ³ 50 GND GND There is/was a DB-50 connector (three-row) variant in SCSI-1, but it's normally not used any more. However, if you need the layout, holler, and i'll search for it. A.3. 68 pin SCSI connectors Pin Cable Type ³ Pin Cable Type Single-Ended ³ Differential B P ³ B P ** ³ 1 GND GND ³ 1 GND -DB(12) 2 GND GND ³ 2 +DB(8) -DB(13) 3 GND GND ³ 3 +DB(9) -DB(14) 4 GND GND ³ 4 +DB(10) -DB(15) 5 GND GND ³ 5 +DB(11) -DB(P1) 6 GND GND ³ 6 +DB(12) GND 7 GND GND ³ 7 +DB(13) +DB(0) 8 GND GND ³ 8 +DB(14) +DB(1) 9 GND GND ³ 9 +DB(15) +DB(2) 10 GND GND ³ 10 +DB(P1) +DB(3) 11 GND GND ³ 11 +ACKB +DB(4) 12 GND GND ³ 12 GND +DB(5) 13 GND GND ³ 13 +REQB +DB(6) 14 GND GND ³ 14 +DB(16) +DB(7) 15 GND GND ³ 15 +DB(17) +DB(P) 16 GND GND ³ 16 +DB(18) DIFFSENS 17 TRMPWRB TRMPWR ³ 17 TRMPWRB TRMPWR 18 TRMPWRB TRMPWR ³ 18 TRMPWRB TRMPWR 19 GND GND ³ 19 +DB(19) Res. 20 GND GND ³ 20 +DB(20) +ATN 21 GND GND ³ 21 +DB(21)S GND 22 GND GND ³ 22 +DB(22) +BSY 23 GND GND ³ 23 +DB(23) +ACK 24 GND GND ³ 24 +DB(P2) +RST 25 GND GND ³ 25 +DB(24) +MSG 26 GND GND ³ 26 +DB(25) +SEL 27 GND GND ³ 27 +DB(26) +C/D 28 GND GND ³ 28 +DB(27) +REQ 29 GND GND ³ 29 +DB(28) +I/O 30 GND GND ³ 30 +DB(29) GND 31 GND GND ³ 31 +DB(30) +DB(8) 32 GND GND ³ 32 +DB(31) +DB(9) 33 GND GND ³ 33 +DB(P3) +DB(10) 34 GND GND ³ 34 GND +DB(11) 35 GND -DB(12) ³ 35 GND +DB(12) 36 -DB(8) -DB(13) ³ 36 -DB(8) +DB(13) 37 -DB(9) -DB(14) ³ 37 -DB(9) +DB(14) 38 -DB(10) -DB(15) ³ 38 -DB(10) +DB(15) 39 -DB(11) -DB(P1) ³ 39 -DB(11) +DB(P1) 40 -DB(12) -DB(0) ³ 40 -DB(12) GND 41 -DB(13) -DB(1) ³ 41 -DB(13) -DB(0) 42 -DB(14) -DB(2) ³ 42 -DB(14) -DB(1) 43 -DB(15) -DB(3) ³ 43 -DB(15) -DB(2) 44 -DB(P1) -DB(4) ³ 44 -DB(P1) -DB(3) 45 -ACKB -DB(5) ³ 45 -ACKB -DB(4) 46 GND -DB(6) ³ 46 DIFFSENS -DB(5) 47 -REQB -DB(7) ³ 47 -REQB -DB(6) 48 -DB(16) -DB(P) ³ 48 -DB(16) -DB(7) 49 -DB(17) GND ³ 49 -DB(17) -DB(P) 50 -DB(18) GND ³ 50 -DB(18) GND 51 TRMPWRB TRMPWR ³ 51 TRMPWRB TRMPWR 52 TRMPWRB TRMPWR ³ 52 TRMPWRB TRMPWR Pin Cable Type ³ Pin Cable Type Single-Ended ³ Differential B P ³ B P ** ³ 53 -DB(19) Res. ³ 53 -DB(19) Res. 54 -DB(20) GND ³ 54 -DB(20) -ATN 55 -DB(21) -ATN ³ 55 -DB(21) GND 56 -DB(22) GND ³ 56 -DB(22) -BSY 57 -DB(23) -BSY ³ 57 -DB(23) -ACK 58 -DB(P2) -ACK ³ 58 -DB(P2) -RST 59 -DB(24) -RST ³ 59 -DB(24) -MSG 60 -DB(25) -MSG ³ 60 -DB(25) -SEL 61 -DB(26) -SEL ³ 61 -DB(26) -C/D 62 -DB(27) -C/D ³ 62 -DB(27) -REQ 63 -DB(28) -REQ ³ 63 -DB(28) -I/O 64 -DB(29) -I/O ³ 64 -DB(29) GND 65 -DB(30) -DB(8) ³ 65 -DB(30) -DB(8) 66 -DB(31) -DB(9) ³ 66 -DB(31) -DB(9) 67 -DB(P3) -DB(10) ³ 67 -DB(P3) -DB(10) 68 GND -DB(11) ³ 68 GND -DB(11) ** The Differential P connector scheme here might be wrong ! I got only one scheme for it and this scheme listed the DB(12) to DB(15) and DB(P1) signals twice with a preceeding "+". The other layouts seem ok. A.4. 110 pin SCSI connector The so-called "L"-cable is a 110-pin cable for 16-Bit and 32-Bit Wide SCSI. The pin layout is as follows: Pin Single Diff. ³ Pin Single Diff. Ended ³ Ended ³ 1 GND GND ³ 56 GND GND 2 GND +DB(24) ³ 57 -DB(24) -DB(24) 3 GND +DB(25) ³ 58 -DB(25) -DB(25) 4 GND +DB(P6) ³ 59 -DB(P6) -DB(P6) 5 GND +DB(27) ³ 60 -DB(27) -DB(27) 6 GND +DB(28) ³ 61 -DB(28) -DB(28) 7 GND +DB(29) ³ 62 -DB(29) -DB(29) 8 GND +DB(30) ³ 63 -DB(30) -DB(30) 9 GND +DB(31) ³ 64 -DB(31) -DB(31) 10 GND +DB(P3) ³ 65 -DB(P3) -DB(P3) 11 GND +DB(12) ³ 66 -DB(12) -DB(12) 12 GND +DB(13) ³ 67 -DB(13) -DB(13) 13 GND +DB(14) ³ 68 -DB(14) -DB(14) 14 GND +DB(15) ³ 69 -DB(15) -DB(15) 15 GND +DB(P1) ³ 70 -DB(P1) -DB(P1) 16 GND GND ³ 71 -DB(0) GND 17 GND -DB(0) ³ 72 -DB(1) -DB(0) 18 GND -DB(1) ³ 73 -DB(2) -DB(1) 19 GND -DB(2) ³ 74 -DB(3) -DB(2) 20 GND -DB(3) ³ 75 -DB(4) -DB(3) 21 GND -DB(4) ³ 76 -DB(5) -DB(4) 22 GND -DB(5) ³ 77 -DB(6) -DB(5) 23 GND -DB(6) ³ 78 -DB(7) -DB(6) 24 GND -DB(7) ³ 79 -DB(P) -DB(7) 25 GND -DB(P) ³ 80 GND -DB(P) 26 GND DIFFSENS ³ 81 GND GND 27 TRMPWR TRMPWR ³ 82 TRMPWR TRMPWR 28 TRMPWR TRMPWR ³ 83 TRMPWR TRMPWR 29 TRMPWR TRMPWR ³ 84 TRMPWR TRMPWR 30 GND +ATN ³ 85 GND -ATN 31 GND GND ³ 86 -ATN GND 32 GND +BSY ³ 87 GND -BSY 33 GND +ACK ³ 88 -BSY -ACK 34 GND +RST ³ 89 -ACK -RST 35 GND +MSG ³ 90 -RST -MSG 36 GND +SEL ³ 91 -MSG -SEL 37 GND +C/D ³ 92 -SEL -C/D 38 GND +REQ ³ 93 -C/D -REQ 39 GND +I/O ³ 94 -REQ -I/O 40 GND GND ³ 95 -I/O GND 41 GND +DB(8) ³ 96 -DB(8) -DB(8) 42 GND +DB(9) ³ 97 -DB(9) -DB(9) 43 GND +DB(10) ³ 98 -DB(10) -DB(10) 44 GND +DB(11) ³ 99 -DB(11) -DB(11) 45 GND GND ³ 100 GND GND 46 GND +DB(16) ³ 101 -DB(16) -DB(16) 47 GND +DB(17) ³ 102 -DB(17) -DB(17) 48 GND +DB(18) ³ 103 -DB(18) -DB(18) 49 GND +DB(19) ³ 104 -DB(19) -DB(19) 50 GND +DB(20) ³ 105 -DB(20) -DB(20) 51 GND +DB(21) ³ 106 -DB(21) -DB(21) 52 GND +DB(22) ³ 107 -DB(22) -DB(22) 53 GND +DB(23) ³ 108 -DB(23) -DB(23) 54 GND +DB(P2) ³ 109 -DB(P2) -DB(P2) 55 GND GND ³ 110 GND GND A.5. Other SCSI connectors. Sometimes, for many reasons strange to me, a company decides to introduce a new SCSI connector. One of these is the Apple PowerBook's HDI-30 connector. Apple's external HDI-30 SCSI connector has the following pinout: Pin Internal External Connector Connector 1 DISK.+5 -LINK.SEL I have no idea what 2 DISK.+5 -DB(0) -LINK.SEL is for. 3 Ground Ground 4 Ground -DB(1) 5 Ground TERMPWR Pin 5 (TP) is not used 6 -DB(0) -DB(2) by Apple ("reserved for 7 -DB(1) -DB(3) future use") and is not 8 -DB(2) Ground connected in Apple's 9 -DB(3) -ACK original PB SCSI cable. 10 -DB(4) Ground 11 -DB(5) -DB(4) 12 -DB(6) Ground 13 -DB(7) Ground 14 -DB(P) -DB(5) 15 DISK.+5 Ground 16 -BSY -DB(6) 17 -ATN Ground 18 -ACK -DB(7) 19 Ground -DB(P) 20 -MSG Ground 21 -RST -REQ 22 -SEL Ground 23 -C/D -BSY 24 -I/O Ground 25 -REQ -ATN 26 Ground -C/D 27 Ground -RST 28 Ground -MSG 29 DISK.+5 -SEL 30 DISK.+5 -I/O ------- If you know of another special SCSI connector, please let me know. I'll then will include it here. Appendix B. Some places to get information about SCSI There are some documents over and about SCSI. Of course, the first source of information are the spec documents. However, they are hard to read and hard to understand if it's your first jump into SCSI. There is a very good article about "What's new in SCSI-2" in the January 1991 issue of "Computer Technology Review". It is written by Dal Allan from ENDL, one of the real "SCSI gurus". Also, there are some books about SCSI (i have none of them, so i can't comment on them). Also, there are some places where SCSI information is present in electronic form. In first place, the NCR SCSI BBS, where the official documents are available. The NCR SCSI BBS : 001-719-574-0424 NCR also has a support BBS for their systems, where drivers are available for download: The NCR Drivers BBS : 001-803-843-1811 Also, there are some SCSI vendors that offer BBS support. They may or may not have some SCSI-related information. For example, the Adaptec BBS has all the ASPI documents. Some of these BBSs i list here. The BBSs with a * are BBSs i called recently, so i assume the phone number is ok. * Adaptec-BBS : 001-408-945-7727 * access from Germany : 089-45640618 * Future Domain BBS : 001-714-253-0432 * Storage Dimensions : 001-408-944-1221 * Maxtor : 001-303-678-2222 (maybe also -2020 ?) * Buslogic's BBS : 001-408-492-1984 Chinon BBS : 001-310-320-4160 Colorado Memory Systems : 001-303-635-0650 Conner's BBS number : 001-408-456-4415 Plextor BBS : 001-408-986-1569 Promise BBS : 001-408-452-1267 * Quantum BBS : 001-408-894-3214 Seagate BBS : 001-408-438-8771 Sony BBS : 001-408-955-5107 Syquest BBS : 001-510-656-0473 Appendix C. Termination Diagrams Here are some termination diagrams about various configurations and their neccessary termination. Your host adapter may have a software-possibility to enable or disable termination. In this case, of course, you don't need to remove the resistor packs to disable termination. Also, with external device termination, you could also terminate the last external device internal, but that would limit your flexibility with them, so i suggest having all external devices not terminated and attaching an external active terminator to the last device's second connector. Only internal devices: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÁÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÁÁÁÁÁÄ¿ÚÄÄ ³ ³ ³ not ³ ³ ::::::: ÃÅ¿ ³ Terminated ³ ³ terminated ³ ³Termination> ... ... ³³³ ³ ³ ³ ³ ³Resistors > ... ³³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ installed ³³³ ³ ÃÅÙ ÀÄ¿ Ú¿ ÚÙ³ ÀÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ Only external devices: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄ ³ ::::::: ÃÅ¿Ä¿ ³Termination> ... ... ³³³ÄÅÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿ ³Resistors > ... ³³³Ä´ ÚÄÄÄÄÄÁÄÁÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ installed ³³³Ä´ ³ not ³ ÀÄ´ Terminated ³ ³ ÃÅÙÄÙ ³ terminated ³ ³ through ³ ÀÄ¿ Ú¿ ÚÙ³ ³ ³ ÚÄ´ <---- ³ ÀÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ ^^External Terminator Internal and external devices: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÁÁÁÁÁÁÄ¿ÚÄÄ ³ ³ ::::::: ÃÅ¿Ä¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³Termination> ... ... ³³³ÄÅÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ not ³ ³ ³Resistors > ... ³³³Ä´ ³ ³ not ³ ³ terminated ÃÄ´ ³ removed ³³³Ä´ ÀÄ´ terminated ³ ³ ³ ³ ³ ÃÅÙÄÙ ÚÄ´ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄ¿ Ú¿ ÚÙ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ Terminated ³ ³ Terminated ÃÄÙ ÀÄ´ through ³ ³ ³ External ÚÄ´ <---- ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ Terminator >ÀÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ